package com.csce.domain.entity.basic;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.osce.common.annotation.Excel;
import com.osce.common.core.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 耗材出库对象 tab_asset_out_order
 *
 * @author hdj
 * @since 2025-11-16
 */
@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@ToString
@EqualsAndHashCode(callSuper = true)
public class TabAssetOutOrder extends BaseEntity {

    private static final long serialVersionUID = 1L;

    /**
     * 订单号
     */
    @ApiModelProperty("${comment}")
    private String id;

    /**
     * 主题
     */
    @Excel(name = "主题")
    @ApiModelProperty("主题")
    private String topic;

    /**
     * 出入库时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出入库时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty("出入库时间")
    private Date handleTime;

    /**
     * 业务类型
     */
    @Excel(name = "业务类型")
    @ApiModelProperty("业务类型")
    private Integer businessType;

    /**
     * 合计数量
     */
    @Excel(name = "合计数量")
    @ApiModelProperty("合计数量")
    private Long number;

    /**
     * 合计金额
     */
    @Excel(name = "合计金额")
    @ApiModelProperty("合计金额")
    private BigDecimal price;

    /**
     * 操作用户（申请）
     */
    @Excel(name = "操作用户", readConverterExp = "申=请")
    @ApiModelProperty("操作用户")
    private String nickName;


    private Long userId;

    /**
     * 类型
     */
    @Excel(name = "类型")
    @ApiModelProperty("类型")
    private Integer type;

    /**
     * 资产库存id集合
     */
    @Excel(name = "资产库存id集合")
    @ApiModelProperty("资产库存id集合")
    private String assetIds;

    /**
     * 资产库存id、数量集合
     */
    @Excel(name = "资产库存id、数量集合")
    @ApiModelProperty("资产库存id、数量集合")
    private String assetIdns;

    /**
     * 库管人员
     */
    @Excel(name = "库管人员")
    @ApiModelProperty("库管人员")
    private String inventoryKeeper;

    /**
     * 审核状态 0.待审核 -1 驳回  1通过  2.归还 3.确认归还
     */
    @Excel(name = "审核状态 0.待审核 -1 驳回  1通过  2.归还 3.确认归还")
    @ApiModelProperty("审核状态 0.待审核 -1 驳回  1通过  2.归还 3.确认归还")
    private Integer audit;

     /**
     * 删除状态 0.正常 1.已删除
     */
    private  Integer deleted;

    /**
     * 这个传过来的详情列表
     */
    private List<TabAssetInventoryConsumable> selectedConsumables;

}
